<html>
<head>
<title>Remake de Fruity Frank - Version 0.08</title>
<style type="text/css">
span {
	font-family: 'Courier New';
	font-size: 10pt;
	color: #000000;
}
.SpanClass0 {
	color: #808080;
}
.SpanClass3 {
	color: #008080;
}
.SpanClass5 {
	font-weight: bold;
	color: #0000FF;
}
.SpanClass7 {
	color: #808080;
}
.SpanClass10 {
	font-weight: bold;
	color: #000080;
}
.SpanClass11 {
}
</style>
</head>
<body bgcolor="#FFFFFF">
<h2>Remake (parcial) de Fruity Frank... 08 - Comprobando colisiones con el mapa</h2>
<p align="right">(Volver al <a href="doc.html">&iacute;ndice</a>) </p>

<p>Ahora que tenemos la estructura de la pantalla de nuestro juego (fondo, enemigos, &quot;premios&quot;) dise&ntilde;ada usando un mapa, es f&aacute;cil comprobar colisiones entre nuestro personaje y otros elementos.</p>

<p>En este primer acercamiento a las colisiones, nuestro personaje podr&aacute; recoger frutas de la pantalla.</p>

<p>Para ello, basta con varios peque&ntilde;os detalles:</p>

<ul>
<li>La posici&oacute;n inicial de nuestro personaje ya no ser&aacute; un punto de la pantalla gr&aacute;fica, como el (100,300), sino un punto del mapa, como el (1,1).</li>
<li>Ya no se mover&aacute; saltando varios p&iacute;xeles (<code>xPersonaje += 4</code>), sino de una casilla en una casilla (<code>xPersonaje ++</code>).</li>
<li>Cuando se mueva, no comprobaremos si ha llegado al final de la pantalla gr&aacute;fica, sino al final del mapa: <code>if ( SDLA_teclaPulsada (TECLA_DER) ) {  xPersonaje ++; if (xPersonaje &gt; MAXCOLS-1) xPersonaje --; }</code></li>
<li>No lo dibujaremos en coordenadas de la pantalla gr&aacute;fica, sino de la misma forma que dibujamos todos los elementos del fondo: <code> SDLA_dibujarImagenOculta(personaje, xIniPantalla + xPersonaje * anchoCasilla, yIniPantalla + yPersonaje * altoCasilla);</code></li>
<li>Antes de redibujar la pantalla, podemos comprobar si existe alguna fruta en la posici&oacute;n que ahora ocupar&aacute; el personaje, y, si es as&iacute;, podemos borrarla (en una etapa m&aacute;s avanzada del juego, no s&oacute;lo har&iacute;amos eso, tambi&eacute;n aumentar&iacute;amos los puntos, etc.): <code>if (mapa1[yPersonaje][xPersonaje] == 'C') mapa1[yPersonaje][xPersonaje] = ' ';</code></li>
</ul>

<p>Apenas con esos cambios, nuestro personaje ya puede &quot;comer frutas&quot; del recorrido. El movimiento es m&aacute;s brusco que antes (avanzamos de &quot;casilla&quot; en &quot;casilla&quot;), pero de momento hemos ganado en versatilidad. M&aacute;s adelante comentaremos c&oacute;mo hacer que el movimiento vuelva a ser suave.</p>

<p>Como siempre, puedes ver todo el proyecto en: <a href="http://code.google.com/p/fruityfrank"> code.google.com/p/fruityfrank</a></p>
<p align="right">(Volver al <a href="doc.html">&iacute;ndice</a>) </p>
</body>
</html>
